package com.orange.core.pojo.entity.merchant.dto;

import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.orange.core.pojo.entity.IIntIdModel;
import com.orange.core.pojo.entity.IOperatorModel;
import com.orange.core.util.Constants;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

/**
 * <p>ClassName:Merchant</p>
 * <p>Description: 商家信息</p>
 * <p>Author: lwm</p>
 * <p>Date: 2025/5/22 14:37</p>
 */
@Data
public class MerchantDTO implements Serializable {

    private static final long serialVersionUID = -6627152433185824537L;

    private Integer id ;

    /** 商家名称 */
    @NotBlank(message = "商家名称不能为空")
    private String name ;

    /** 商家标题 */
    @NotBlank(message = "商家标题不能为空")
    private String title ;

    /** 商家图片URL */
    private String imageUrl ;

    /** 商家地址 */
    @NotBlank(message = "商家地址不能为空")
    private String address ;

    /** 商家电话 */
    private String phone ;

    /** 商家基本介绍 */
    private String description ;

    /**
     * 商家评分
     */
    private BigDecimal rating;

    /**
     * 商家评论数
     */
//    private Integer reviewCount;

    /**
     * 商家评分文字
     */
//    private String ratingText;

    /**
     * 营业开始时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalTime startTime;

    /**
     * 营业结束时间
     */
    @JsonFormat(pattern = "HH:mm")
    private LocalTime endTime;

    /**
     * 商家家标签（JSON数组）
     */
    private List<String> tags;

    /**
     * 商家轮播图（JSON数组）
     */
    @TableField(value = "carousel_images", typeHandler = JacksonTypeHandler.class)
    private List<String> carouselImages;

}
